{#if loadError}
{loadError}
{:else} {#await currentUserIdentity}
{:then identity} {@const isOwner = identity && identity.name === data.username} {#await badgesPromise}
{:then badgesResponse} {#if badgesResponse} {#await badgesResponse.json()}
{:then ungroupedBadges}
{#await awcPromise then badges} {#await badges.text() then text} {@const parsedBadges = awcBadgesGrouped(text)} {#if parsedBadges.length > 0} {#each parsedBadges as group}
Anime Watching Club | {group.group}
{#each group.badges as badge}
fallback(e, badge.image)} />
{/each}
{/each} {/if} {/await} {/await} {#if ungroupedBadges === null}
{@html nbsp('Loading badges ... 50%')}
{:else if ungroupedBadges.length === 0}
No due.moe registered badges found for this user.
?
{:else} {@const groupedBadges = Object.entries(groupBadges(ungroupedBadges))} {#if isOwner}
Back to Profile
•
{ if (editMode) selectedBadge = undefined; editMode = !editMode; }} > {editMode ? 'Disable' : 'Enable'} Edit Mode
{#if editMode && isOwner} {@const groups = groupedBadges .map((group) => group[0]) .filter((group) => group !== 'Uncategorised')}
{#if error}
{error}
{/if}
{#if groups.length > 0}
{#each groups as group}
{/each}
{/if}
{selectedBadge ? 'Update' : 'Add'}
{#if selectedBadge} or
{ if (selectedBadge) removeBadge(selectedBadge); }}>Delete (click twice)
{/if}
Must be full date and time, defaults to now if any fields empty
{/if}
{/if}
{#each groupedBadges as [category, badges]}
{category}
{#each badges as badge} {#if editMode}
(selectedBadge = badge)} id={`badge-${badge.id}`} title={`${ badge.time ? databaseTimeToDate(badge.time).toLocaleString() : '' }${badge.description ? `\n${badge.description}` : ''}`} use:tooltip >
fallback(e, badge.image)} />
{:else}
fallback(e, badge.image)} />
{/if} {/each}
{#if groupedBadges[groupedBadges.length - 1][0] !== category}
{/if} {/each} {/if}
{:catch}
Could not parse badges
{/await} {:else}
{/if} {:catch}
Could not fetch badges
{/await} {/await} {/if}